//package hanjia;
//
//import java.util.Collection;
//import java.util.Iterator;
//import java.util.ListIterator;
//import java.util.Queue;
//
///**
// * Description:
// * Author:    Dane
// * CreateTime:2025/2/5-下午7:33
// * Since  :   1.0
// * Version:   1.0
// */
//public class LinkedListQueue<E> implements Queue<E>, Iterable<E> {
//
//
//    private static class Node<E> {
//        E value;
//        Node<E> next;
//
//        public Node(E value, Node<E> next) {
//            this.value = value;
//            this.next = next;
//        }
//    }
//
//    Node<E> head = new Node<>(null, null);
//    Node<E> tail = head;
//    int size;
//    int capacity=Integer.MAX_VALUE;
//    {
//        tail.next = head;
//    }
//    public LinkedListQueue(int capacity) {
//        this.capacity = capacity;
//    }
//
//    public LinkedListQueue(Node<E> tail) {
//
//    }
//
//    @Override
//    public int size() {
//        return size;
//    }
//
//    @Override
//    public boolean isEmpty() {
//        return head==tail;
//    }
//
//    @Override
//    public boolean contains(Object o) {
//        return false;
//    }
//
//    @Override
//    public Iterator<E> iterator() {
//        return new ListIterator<E>() {
//            Node<E> p = head.next;
//
//
//            @Override
//            public boolean hasNext() {
//                return p!=head;
//            }
//
//            @Override
//            public E next() {
//                E value = p.value;
//                p=p.next;
//
//                return value;
//            }
//
//            @Override
//            public boolean hasPrevious() {
//                return false;
//            }
//
//            @Override
//            public E previous() {
//                return null;
//            }
//
//            @Override
//            public int nextIndex() {
//                return 0;
//            }
//
//            @Override
//            public int previousIndex() {
//                return 0;
//            }
//
//            @Override
//            public void remove() {
//
//            }
//
//            @Override
//            public void set(E e) {
//
//            }
//
//            @Override
//            public void add(E e) {
//
//            }
//        }
//    }
//
//    @Override
//    public Object[] toArray() {
//        return new Object[0];
//    }
//
//    @Override
//    public <T> T[] toArray(T[] a) {
//        return null;
//    }
//
//    @Override
//    public boolean add(E e) {
//        return false;
//    }
//
//    @Override
//    public boolean remove(Object o) {
//        return false;
//    }
//
//    @Override
//    public boolean containsAll(Collection<?> c) {
//        return false;
//    }
//
//    @Override
//    public boolean addAll(Collection<? extends E> c) {
//        return false;
//    }
//
//    @Override
//    public boolean removeAll(Collection<?> c) {
//        return false;
//    }
//
//    @Override
//    public boolean retainAll(Collection<?> c) {
//        return false;
//    }
//
//    @Override
//    public void clear() {
//
//    }
//
//    @Override
//    public boolean offer(E e) {
//        if (isFull()) {
//            return false;
//        }
//        Node<E> added = new Node<>(e, head);
//        tail.next = added;
//        tail = added;
//        size++;
//        return true;
//    }
//
//    @Override
//    public E remove() {
//        return null;
//    }
//
//    @Override
//    public E poll() {
//        if (isEmpty()){
//            return null;
//        }
//        Node<E> first = head.next;
//        head.next=first.next;
//        if (first==tail){
//            tail=head;
//        }
//        size--;
//
//        return first.value;
//    }
//
//    @Override
//    public E element() {
//        return null;
//    }
//
//    @Override
//    public E peek() {
//       if (isEmpty()){
//           return null;
//       }
//       return head.next.value;
//    }
//    public Boolean isFull(){
//        return  size==capacity;
//
//    }
//
//
//
//}
